A Framework for Inductive Proofs of Data Structures

نویسندگان

  • Duc-Hiep Chu
  • Joxan Jaffar
چکیده

We consider the problem of automated program verification with emphasis on reasoning about dynamically manipulated data structures. We begin with an existing specification language which has two key features: (a) the use of explicit heap variables, and (b) user defined recursive properties in a wrapper logic language. The language provides a new-level of expressiveness for specifying properties of heap manipulations. The main contribution, however, is an algorithm to automatically prove verification conditions when formulas in the specification language are used as assertions in programs. More precisely, we consider verification of heap manipulating programs that combines user written modular contracts and loop invariants with completely automated theorem proving of the resulting verification conditions. The key feature of the algorithm is the ability to automatically employ induction proof steps with respect to dynamically generated induction hypotheses. Though necessarily still incomplete, the algorithm provides a new level of automation.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Automating Program Proofs Based on Separation Logic with Inductive Definitions

This paper investigates the use of Separation Logic with inductive definitions in reasoning about programs that manipulate dynamic data structures. We propose a novel approach for exploiting the inductive definitions in automating program proofs based on inductive invariants. We focus on iterative programs, although our techniques apply to recursive programs as well, and specifications that des...

متن کامل

Natural proofs versus programs optimization in the Calculus of Inductive Constructions

This paper presents how to automatically prove that an \opti-mized" program is correct with respect to a set of given properties that is a speciication. Proofs of speciications contain logical and computational parts. Programs can be seen as computational parts of proofs. They can thus be extracted from proofs and be certiied to be correct. The inverse problem can be solved: it is possible to r...

متن کامل

Formalised Inductive Reasoning in the Logic of Bunched Implications

We present a framework for inductive definitions in the logic of bunched implications, BI, and formulate two sequent calculus proof systems for inductive reasoning in this framework. The first proof system adopts a traditional approach to inductive proof, extending the usual sequent calculus for predicate BI with explicit induction rules for the inductively defined predicates. The second system...

متن کامل

Inductive Beluga: Programming Proofs

belugais a proof environment that provides a rich sophisticated infrastructure for implementing formal systems based on the logical framework LF together with a first-order reasoning language for implementing inductive proofs about them following the Curry-Howard

متن کامل

Constructive Second-Order Proofs in Logical Databases

The constructive second-order proofs that we study are associated with inductive definitions on classes of finite structures, where each structure represents a database state. To an inductive definition of a predicate P on a class K corresponds a uniform proof of P i.e a function which for each structure U defines a proof of P in U In the second section, we review the definition of an inductive...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013